Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
babel-plugin-ember-modules-api-polyfill
Advanced tools
The babel-plugin-ember-modules-api-polyfill package is a Babel plugin that allows developers to use the new JavaScript module API for Ember.js. It automatically transforms the new module syntax into the older global API, making it easier to adopt modern JavaScript practices while maintaining compatibility with existing Ember.js codebases.
Transforming new module syntax to global API
This feature allows developers to use the new ES6 module syntax for importing Ember.js components, which the plugin then transforms into the older global API syntax. This makes it easier to write modern JavaScript while ensuring compatibility with older Ember.js versions.
import Component from '@ember/component';
export default Component.extend({
// component logic
});
Automatic polyfilling
The plugin automatically polyfills the new module API, allowing developers to use modern import statements for Ember services, components, and other modules. This reduces boilerplate and improves code readability.
import { inject as service } from '@ember/service';
export default Component.extend({
myService: service(),
// component logic
});
This Babel plugin transforms ES6 module syntax into CommonJS, which is widely used in Node.js environments. While it doesn't specifically target Ember.js, it provides similar functionality in terms of transforming modern JavaScript module syntax into a format compatible with older environments.
This plugin allows developers to customize the resolution of module paths, making it easier to manage imports in large projects. While it doesn't specifically polyfill Ember.js modules, it offers similar benefits in terms of improving code organization and readability.
This plugin transforms JavaScript modules API import statements back to the legacy "global" ember object syntax
import { inject } from "@ember/service"
back to the legacy
const inject = Ember.inject.service
npm install --save babel-plugin-ember-modules-api-polyfill
This plugin provides an API polyfill to allow ember addon authors to adopt the new JavaScript modules API whilst still maintaining backwards compatibility with older versions of Ember that do not support the new modules API.
The intention of this Babel plugin is to also allow for a transition period and allow applications to exist in a mixed state whilst transitioning from the old "global" ember object pattern, into the new modular pattern.
Using the ember-rfc176-data package, that contains the official mapping of old global object names to the new JS modules API import statements, addons that adopt the new API can be transpiled back to the legacy format if Ember-CLI detects that the host application ember version does not support the new modules API.
The plugin supports both default import Component from "@ember/component"
and named import { inject } from "@ember/service"
import statements,
converting their syntax back to separate const
variables within the source file. This transpilation is done at compile time by Ember CLI.
In order for ember addon developers to adopt this new API syntax, they must declare a dependency on ember-cli-babel:v6.6.0
or above in their
package.json:
{
"dependencies": {
"ember-cli-babel": "^6.6.0"
}
}
FAQs
Polyfill for Ember JS API.
The npm package babel-plugin-ember-modules-api-polyfill receives a total of 182,582 weekly downloads. As such, babel-plugin-ember-modules-api-polyfill popularity was classified as popular.
We found that babel-plugin-ember-modules-api-polyfill demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.